// components/search/index.js
import {
	paginationBev
} from '../behaviors/pagination'
import {
	KeywordModel
} from '../../models/keyword'
import {
	BookModels
} from '../../models/book'
const keywordModel = new KeywordModel()
const bookModels = new BookModels()
Component({
	/**
	 * 组件的属性列表
	 */
	behaviors: [paginationBev],
	properties: {
		// 页面触底触发的参数
		more: {
			type: Number,
			observer: 'loadMore'
		}

	},

	/**
	 * 组件的初始数据
	 */
	data: {
		// 历史搜索
		historyWords: [],
		// 热门搜索
		hotWords: {},
		// 搜索书籍页面是否显示
		searching: false,
		// input的文字内容
		q: '',
		// 加载锁
		loading: false,
		// 是否显示加载效果
		loadingCenter:false,
		// 是否显示没有搜索到书籍
		noneResult:false,
		// 是否显示喜欢,
		likeSwitch:true
	},
	attached() {
		// 双向绑定搜索历史
		const content = keywordModel.getHistory()
		this.setData({
			historyWords: content
		})
		// 请求热门搜索接口
		keywordModel.getHot()
			.then(res => {
				this.setData({
					hotWords: res.hot
				})
			})
	},
	/**
	 * 组件的方法列表
	 */
	methods: {
		// 点击取消触发
		onCancel() {
			this._likeShow()
			this._closeResult()
			this.triggerEvent('cancel')
		},
		// 输入框点击完成触发
		onConfirm(e) {
			this._likeHide()
			this._showLoadingCenter()
			this._showResult()
			this.initialize()
			const word = e.detail.value || e.detail.text
			// 请求搜索结果
			bookModels.search(0, word).then(res => {
				this._hideLoadingCenter()
				this.setMoreData(res.books)
				this.setTotal(res.total)
				this.setData({
					q: word
				})
				keywordModel.addToHistory(word)
				console.log(this.data.dataArray);
			})
		},
		// 点击x号删除搜索内容
		onDelete() {
			this._closeResult()
			this.setData({
				q:''
			})
		},
		// 触底触发的函数
		loadMore() {
			if (!this.data.q) {
				return
			}
			// 加载锁
			if (this.isLocked()) {
				return
			}
			if (this.hasMore()) {
				this.locked()
				bookModels.search(this.getCurrentStart(), this.data.q).then(res => {
					this.setMoreData(res.books)
					this.unLocked()
					// 防止断网情况下变成死锁
				}).catch(()=>{
					this.unLocked()
				})
			}

		},
		// 搜索书籍页面显示
		_showResult(){
			this.setData({
				searching: true
			})
		},
		// 搜索书籍页面不显示
		_closeResult(){
			this.setData({
				searching: false,
				noneResult:false
			})
		}
		,
		
		// 显示加载效果
		_showLoadingCenter(){
			this.setData({
				loadingCenter:true
			})
		},
		// 不显示加载效果
		_hideLoadingCenter(){
			this.setData({
				loadingCenter:false
			})
		},
		// 显示喜欢字样
		_likeShow(){
			this.setData({
				likeSwitch:false
			})
		},
		// 不显示喜欢字样
		_likeHide(){
			this.setData({
				likeSwitch:true
			})
		}
	}
})